package com.zp.business.service.clinicOrder;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zp.business.entity.clinicOrder.OutpTreatRec;
import com.zp.business.entity.clinicOrder.bo.ClinicOrderParam;
import com.zp.business.entity.clinicOrder.bo.OutpTreatRecBo;
import com.zp.business.entity.clinicOrder.vo.OutpTreatRecVo;
import com.zp.common.myBatis.core.page.PageQuery;
import com.zp.common.myBatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 处置治疗Service接口
 *
 * @author zhang peng
 * @ date 2024-01-05
 */
public interface IOutpTreatRecService {

    /**
     * 查询处置治疗
     */
    OutpTreatRecVo queryById (String id);

    /**
     * 查询处置治疗列表(分页)
     */
    TableDataInfo<OutpTreatRecVo> queryPageList (OutpTreatRecBo bo, PageQuery pageQuery);

    /**
     * 查询处置治疗列表(不分页)
     */
    List<OutpTreatRecVo> queryList (OutpTreatRecBo bo);

    /**
     * 修改处置治疗
     */
    Boolean insertByBo (OutpTreatRecBo bo);

    /**
     * 修改处置治疗
     */
    Boolean updateByBo (OutpTreatRecBo bo);

    /**
     * 校验并批量删除处置治疗信息
     */
    Boolean deleteWithValidByIds (Collection<String> ids, Boolean isValid);

    /**
     * 门诊处置治疗项目保存
     *
     * @param param
     * @return
     */
    List<OutpTreatRec> saveByBo (ClinicOrderParam param);

    /**
     * 根据orgId和applyNo 删除门诊处置治疗项目
     *
     * @param orgId   机构id
     * @param applyNo 申请单号
     * @return Boolean
     */
    Boolean deleteByBo (String orgId, String applyNo);

    boolean update (LambdaUpdateWrapper<OutpTreatRec> outpTreatRecLambdaUpdateWrapper);


    /**
     * @ Author zhangpeng
     * @ Description 遍历删除项目
     * @ Date 17:04 2024/3/21
     * @ Param ids OutpTreatRec id集合
     * @ return
     **/
    Boolean ergodicDeleteBo (List<String> ids);
}
